<template>
  <div>
    <mavon-editor
      ref="markdown"
      v-model="value"
      :toolbars="toolbars"
      @imgAdd="handleEditorImgAdd"
      @imgDel="handleEditorImgDel" style="height: 500px"/>
  </div>

</template>

<script>
import {mavonEditor} from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'

export default {
  name: "MavonEditor",
  props: ['content'],
  components: {
    mavonEditor,
  },
  data() {
    return {
      value: this.content,
      toolbars: {
        bold: true, // 粗体
        italic: true, // 斜体
        header: true, // 标题
        underline: true, // 下划线
        strikethrough: true, // 中划线
        mark: true, // 标记
        superscript: true, // 上角标
        subscript: true, // 下角标
        quote: true, // 引用
        ol: true, // 有序列表
        ul: true, // 无序列表
        link: true, // 链接
        imagelink: true, // 图片链接
        code: true, // code
        table: true, // 表格
        fullscreen: true, // 全屏编辑
        readmodel: true, // 沉浸式阅读
        htmlcode: true, // 展示html源码
        help: true, // 帮助
        /* 1.3.5 */
        undo: true, // 上一步
        redo: true, // 下一步
        trash: true, // 清空
        save: true, // 保存（触发events中的save事件）
        /* 1.4.2 */
        navigation: true, // 导航目录
        /* 2.1.8 */
        alignleft: true, // 左对齐
        aligncenter: true, // 居中
        alignright: true, // 右对齐
        /* 2.2.1 */
        subfield: true, // 单双栏模式
        preview: true, // 预览
      },
    };
  },
  methods: {
    sentText() {
      this.$emit("sendText", this.value);
    },
    handleEditorImgAdd(pos, file) {
      let formData = new FormData();
      formData.append('imgFile', file, file.name);
      this.axios.post('/blog/uploadImg', formData, {
        headers: {
          'Content-Type': 'multipart/form-data',
        }
      }).then((response) => {
        console.log(response.data);
        this.$refs.markdown.$img2Url(pos, response.data.data);
      })
    },
    handleEditorImgDel(pos) {
    }
  },
  watch: {
    value(newValue, oldValue) {
      this.sentText();
    }
  }
}
</script>

<style scoped>

</style>
